﻿using System;
using System.Collections.Generic;
using Mono.Cecil;
using Mono.Cecil.Cil;

namespace CoreEx.Common.Proxy
{
    /// <summary>
    /// Represents a class that is capable of emitting the code to initialize a new <see cref="IInitalizationInfo"/> instance.
    /// </summary>
    public interface IInitializationInfoEmitter
    {
        VariableDefinition Emit(MethodDefinition targetMethod, Type baseType, IEnumerable<Type> interfaces);
    }
}